package com.springboot.learn_web_rabbitmq.demo;

import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;

import java.io.IOException;
import java.util.concurrent.TimeoutException;

/**
 * 发送消息到rabbitmq服务器
 */
public class Producer {
    private final static String QUEUE_NAME="rabbitMQ.test";
    public static void main(String[] args) throws IOException, TimeoutException {
        //设置连接工厂
        ConnectionFactory factory=new ConnectionFactory();
        //社遏制RabbitMQ相关信息
        factory.setHost("localhost");
//        factory.setUsername("");
//        factory.setPassword("");
//        factory.setPort();
        //创建一个新的连接
        Connection connection=factory.newConnection();
        //创建一个通道
        Channel channel=connection.createChannel();
        //声明一个队列
        //参数一：队列名称
        //参数二：是否持久化（true表示是，队列将在服务器重启时生存）
        //参数三：是否独占队列（创建者可以使用的私有队列，断开后自动删除）
        //参数四：当所有消费者客户端连接断开时是否自动删除队列
        //参数五：参数为队列的其他参数
        channel.queueDeclare(QUEUE_NAME,false,false,false,null);
        //发送消息到队列中
        String message="Hello RabbitMQ";
        //参数一：交换机名称
        //参数二：队列映射的路由key
        //参数三：消息的其他属性
        //参数四：发送消息的主体
        channel.basicPublish("",QUEUE_NAME,null,message.getBytes("UTF-8"));
        System.out.println("Producer Send + '" + message + "'");
        //关闭通道和连接
        channel.close();
        connection.close();


    }
}
